﻿// JavaScript Document


function setDialogSize(id, sizeW, sizeH)
{
	$(id).dialog('option', {width: sizeW, height: sizeH});
}

function scaleDialogSize(id, scaleW, scaleH)
{
	if (typeof scaleW === 'undefined') 
		scaleW = 0.8;
	if (typeof scaleH === 'undefined')
		scaleH = 0.8;
		
	var iWidth  = $(window).width () * scaleW;
	var iHeight = $(window).height() * scaleH;
	
	//alert( 'Width: ' + iWidth + '\nHeight: ' + iHeight );
	
	$(id).dialog('option', {width: iWidth, height: iHeight});
}

function resetTipsState()
{
	$('.state-control')
		.removeClass('ui-state-error')
		.removeClass('ui-state-highlight');
}

function updateTips(elem, text)
{
	elem
		.text(text)
		.addClass('ui-state-highlight');
}

function validateLength(elem, min, max, description, tips)
{
	var len = elem.val().length;
	if (len > max || len < min)
	{
		elem.addClass('ui-state-highlight');
		updateTips(tips, 'Длина поля ' + description + ' должна быть не меньше ' + min + ' и не больше ' + max + ' символов');
		return false;
	}
	return true;
}

$(document).ready(function ()
{ 
	$('#specialists-btn').click(function() { alert('Bom bom bom'); });

	$('#query-field')
		.focusout(function()
		{
			var elem = $(this);
			var str = elem.val();
			if (str === '')
				str = requestExample;

			if (str === requestExample)
			{
				elem
					.val(str)
					.addClass('text-grayed');
			}
		})
		.focusin( function()
		{
			var elem = $(this);
			var str = elem.val();
			if (str === requestExample)
				elem.val('');
			elem.removeClass('text-grayed');
		})
		.blur();
			
	$('#help-dialog').dialog(
	{
		modal: true, 
		autoOpen: false,
		width: 400,
		heigth: 300,
		buttons: 
		{
			'Отправить заявку': function()
			{
				// validate fields
				resetTipsState();
				var tips = $('#query-tips');
				var fio = $('#query-form-fio');
				var phone = $('#query-form-phone');
				var request = $('#query-form-request');
				// todo: add more validation checks
				if (!validateLength(fio, 3, 100, 'Фамилия Имя Отчество', tips) ||
						!validateLength(phone, 3, 100, 'Контактный Телефон', tips) ||
						!validateLength(request, 10, 500, 'Описание Запроса', tips)
				)
					return;
					
				$.ajax({
					url: 'ajaj/handle_request.php',
					data: {'fio': fio.val(), 'request': request.val(), 'phone': phone.val()},
					type: 'POST',
					cache: false,
					dataType: 'json',
					success: function(data, textStatus, jqXHR)
					{
						var errorMsg = data['errorMsg'];
						
						if ((errorMsg != undefined) && (errorMsg != ''))
						{
							updateTips($('#query-tips'), errorMsg);
							return;
						}
		
						// todo: show msg that request is registered
						alert('todo: show msg that request is registered');
						//$('#query-form-request').val('');
					},
					error: function(jqXHR, textStatus, errorThrown)
					{
						updateTips($('#query-tips'), 'Сервис временно недоступен. Пожалуйста, попробуйте позже...');
					}
				});
				
			},
			'Отмена': function(){ $(this).dialog( 'close' ); }
		},
		open: function(){ $('#query-tips').text('Пожалуйста, заполните все поля:'); },
		close: function(){ resetTipsState(); }
	});	
	

  $('#help-btn').click(function(e)
	{
		var text = $('#query-field').val();
		if (text.length == 0 || text === requestExample)
			return;
		
		e.preventDefault();
		$('#query-form-request').val(text);
		$('#help-dialog').dialog('open');
  });  
	
	$("#query-field")
		.keypress(function(e)
		{
			if (e.which != 13) // enter
				return;
		
			$('#help-btn').click();
			e.preventDefault();
		})
		.keydown(function(e)
		{
			if (e.which != 27) // escape
				return;
			$(this).val('');
			e.preventDefault();
		});

  $('#contacts').click(function(e)
	{
		e.preventDefault();
		//scaleDialogSize('#contacts-dialog');
		$('#contacts-dialog').dialog('open');
  });

  $('#why-we').click(function(e)
	{
		e.preventDefault();
		$('#why-we-dialog').dialog('open');
  });
	
	
/*
	$(window).resize(function()
	{
		if ( $('#partnershipDialog').dialog( 'isOpen' ) )
			scaleDialogSize('#partnershipDialog');
			
		if ( $('#contactsDialog').dialog( 'isOpen' ) )
			scaleDialogSize('#contactsDialog');
			
		if ( $('#whyWeDialog').dialog( 'isOpen' ) )
			scaleDialogSize('#whyWeDialog');
	});
*/
});